package agent.teekonna.behaviour;

import jade.core.Agent;
import jade.core.behaviours.TickerBehaviour;
import jade.lang.acl.ACLMessage;

import java.util.UUID;

import agent.keskkonna.KeskkonnaAgent;
import agent.params.LocationParam;
import agent.util.AgentUtil;

/**
 * 
 * @author margus
 * 
 */
public class TeekonnaTickerBehaviour extends TickerBehaviour {

	public TeekonnaTickerBehaviour(Agent agent, long period) {
		super(agent, period);
	}

	private static final long serialVersionUID = 1L;

	@Override
	protected void onTick() {
		// teekonna kontroller ise küsib Keskkonna kontrollerilt. ilmselt on
		// teekonna kontrolleril mingid kaks
		// punkti ning küsib nende järgi ning keskkonna kontroller vastab.
		// Keskkonna kontroller ise kalkuleerib
		// punktide vahele jääva osa kohta andmed ning tagastab need.
		doNewQueryToKeskkonnaAgent();
	}

	private void doNewQueryToKeskkonnaAgent() {
		ACLMessage query = new ACLMessage(ACLMessage.INFORM);
		query.setReplyWith(UUID.randomUUID().toString());
		query.addUserDefinedParameter(
				LocationParam.LOCATION_FROM_GPS_E.toString(), "FROM_GPS_E");
		query.addUserDefinedParameter(
				LocationParam.LOCATION_FROM_GPS_N.toString(), "FROM_GPS_N");
		query.addUserDefinedParameter(LocationParam.LOCATION_GPS_E.toString(),
				"TO_GPS_E");
		query.addUserDefinedParameter(LocationParam.LOCATION_GPS_N.toString(),
				"TO_GPS_N");
		query.addReceiver(AgentUtil.createLocalAid(KeskkonnaAgent.class));
		myAgent.send(query);

	}
}
